package-manager-detector
Package manager detector is based on lock files and the packageManager
field in the current project's package.json
file.
It will detect your yarn.lock
/ pnpm-lock.yaml
/ package-lock.json
/ bun.lockb
to know the current package manager and use the packageManager
field in your package.json
if present.
Install
pnpm add package-manager-detector
npm i package-manager-detector
yarn add package-manager-detector
Usage
import { detect } from 'package-manager-detector'
const { detect } = require('package-manager-detector')
Agents and Commands
This package includes package manager agents and their corresponding commands for:
'agent'
- run the package manager with no arguments'install'
- install dependencies'frozen'
- install dependencies using frozen lockfile'add'
- add dependencies'uninstall'
- remove dependencies'global'
- install global packages'global_uninstall'
- remove global packages'upgrade'
- upgrade dependencies'upgrade-interactive'
- upgrade dependencies interactively: not available for npm
and bun
'execute'
- download & execute binary scripts'run'
- run package.json
scripts
Using Agents and Commands
A COMMANDS
map is exported which lets you get a command from the above list for the detected agent. For example:
import { detect } from 'package-manager-detector'
import { COMMANDS } from 'package-manager-detector/agents'
const pm = await detect()
if (!pm)
throw new Error('Could not detect package manager')
const command = COMMANDS[pm.agent]['frozen']
console.log(`Detected the ${pm.agent} package manager. You can run a frozen install with ${command}`)
License
MIT License © 2020-PRESENT Anthony Fu